﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace JAAF.UI
{
    public interface IShell
    {
        #region Events

        /// <summary>
        /// An event that is fired when the shell is closing.
        /// </summary>
        event CancelEventHandler Closing;

        event EventHandler Opened;

        event EventHandler Activated;

        #endregion

        UIApplication Application
        {
            get;
            set;
        }

        void Open();

        /// <summary>
        /// Halts the execution and waits for the shell to be closed
        /// </summary>
        void Wait();

        /// <summary>
        /// Closes the shell
        /// </summary>
        void Close();

    }
}
